<?php

class ItemHistorico {

    private $idItemHistorico;
    private $idHistorico;
    private $idProduto;
    private $qtd;

    const NOME_MODULO = "ItemHistorico";

    public function getIdItemHistorico() {
        return $this->idItemHistorico;
    }

    public function setIdItemHistorico($idItemHistorico) {
        $this->idItemHistorico = $idItemHistorico;
    }

    public function getIdHistorico() {
        return $this->idHistorico;
    }

    public function setIdHistorico($idHistorico) {
        $this->idHistorico = $idHistorico;
    }

    public function getIdProduto() {
        return $this->idProduto;
    }

    public function setIdProduto($idProduto) {
        $this->idProduto = $idProduto;
    }

    public function getQtd() {
        return $this->qtd;
    }

    public function setQtd($qtd) {
        $this->qtd = $qtd;
    }

    public static function listarPorHistorico($idHistorico) {
        $conn = Connection::getConnection();
        $itens = array();

        $rs = $conn->query("SELECT * FROM itemhistorico WHERE idHistorico = $idHistorico");
        while ($linha = $rs->fetch_assoc()) {
            $itens[] = self::arrayParaItemHistorico($linha);
        }
        return $itens;
    }

    public function inserir() {
        $conn = Connection::getConnection();

        $rs = $conn->prepare("INSERT INTO itemhistorico SET idHistorico = ?, idProduto = ?, qtd = ?");
        $rs->bind_param("iii", $this->idHistorico, $this->idProduto, $this->qtd);
        //var_dump($rs);die;
        return $rs->execute();
    }

    public function alterar() {
        $conn = Connection::getConnection();

        $rs = $conn->prepare("UPDATE itemhistorico SET idHistorico = ?, idProduto = ?, qtd = ?  WHERE idItemHistorico = ?");
        $rs->bind_param("iiii", $this->idhistorico, $this->idProduto, $this->qtd, $this->idItemHistorico);
        return $rs->execute();
    }

    public function excluir($id) {
        $conn = Connection::getConnection();

        $rs = $conn->prepare("DELETE FROM itemhistorico  WHERE idItemHistorico= ?");
        $rs->bind_param("d", $id);

        return $rs->execute();
    }

    /**
     * Retorna um Produto
     * @param int id
     * @return Produto
     */
    public static function consultar($id) {
        $item = null;
        $conn = Connection::getConnection();

        $rs = $conn->query("SELECT * FROM itemhistorico WHERE idItemHistorico = $id");

        $linha = $rs->fetch_assoc();
        //se foi encontrado o registro
        if ($linha) {
            $item = self::arrayParaItemHistorico($linha);
        }
        return $item;
    }

    /**
     * Tranforma a linha de uma consulta na tabela produto em um objeto Produto
     * @param type $linha linha de uma consulta da tabela produto
     */
    public static function arrayParaItemHistorico($linha) {
        $item = new ItemHistorico();
        $item->idItem = isset($linha["idItemHistorico"]) ? $linha["idItemHistorico"] : null;
        $item->idHistorico = isset($linha["idHistorico"]) ? $linha["idHistorico"] : null;
        $item->idProduto = isset($linha["idProduto"]) ? $linha["idProduto"] : null;
        $item->qtd = isset($linha["qtd"]) ? $linha["qtd"] : null;
        return $item;
    }

}

?>